<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core">

    <ui:composition template="/template.xhtml">
        <ui:define name="title">
            <h:outputText value="#{bundle.ListCidadeTitle}"></h:outputText>
        </ui:define>
        
        <ui:define name="menuLateral">
            
            <h:form id="formLateralMenuCidade">
                
            </h:form>
            
        </ui:define>
        
        <ui:define name="body">
            <h:form id="formCidadeList">

                <h:panelGroup id="messagePanel" layout="block">
                    <p:growl />
                </h:panelGroup>

                <h:panelGroup>
                    <p:dataTable id="tableCidade" value="#{cidadeController.items}" emptyMessage="#{bundle.ListCidadeEmpty}" var="item" 
                                 style="border:solid 1px" paginator="true" rows="10">

                        <f:facet name="header">#{bundle.ListCidadeTitle}</f:facet>

                        <p:column sortBy="#{item.nome}" filterBy="#{item.nome}">
                            <f:facet name="header">
                                <h:outputText value="#{bundle.ListCidadeTitle_nome}"/>
                            </f:facet>
                            <h:outputText value="#{item.nome}"/>
                        </p:column>
                        <p:column sortBy="#{item.uf.sigla}" filterBy="#{item.uf.sigla}">
                            <f:facet name="header">
                                <h:outputText value="#{bundle.ListCidadeTitle_uf}"/>
                            </f:facet>
                            <h:outputText value="#{item.uf.sigla}"/>
                        </p:column>
                        <p:column>
                            <f:facet name="header">
                                <p:commandButton actionListener="#{cidadeController.prepareCreate}" value="#{bundle.ListCidadeCreateLink}" 
                                                 update=":formCidadeCreate:pgCidadeCreate" oncomplete="dialogCidadeCreate.show()"/>
                            </f:facet>
                            <p:commandButton actionListener="#{cidadeController.prepareEdit}" value="#{bundle.ListCidadeEditLink}" 
                                             update=":formCidadeEdit:pgCidadeEdit" oncomplete="dialogCidadeEdit.show()"/>
                            <p:commandButton actionListener="#{cidadeController.destroy}" value="#{bundle.ListCidadeDestroyLink}" ajax="false" />
                        </p:column>
                    </p:dataTable>
                </h:panelGroup>
            </h:form>

            <h:form id="formCidadeCreate">

                <p:dialog header="Nova Cidade" widgetVar="dialogCidadeCreate" resizable="false" modal="true" showEffect="slide">
                    <p:panelGrid id="pgCidadeCreate" columns="2">
                        <h:outputLabel value="#{bundle.CreateCidadeLabel_nome}" for="nome" />
                        <p:inputText id="nome" value="#{cidadeController.selected.nome}" title="#{bundle.CreateCidadeTitle_nome}" required="true" requiredMessage="#{bundle.CreateCidadeRequiredMessage_nome}"/>
                        <h:outputLabel value="#{bundle.CreateCidadeLabel_uf}" for="uf" />
                        <p:selectOneMenu id="uf" value="#{cidadeController.selected.uf}" label="#{bundle.CreateCidadeTitle_uf}" required="true" requiredMessage="#{bundle.CreateCidadeRequiredMessage_uf}">
                            <f:selectItems value="#{ufController.itemsAvailableSelectOne}"/>
                        </p:selectOneMenu>
                        <p:commandButton actionListener="#{cidadeController.create}" update=":formCidadeList:tableCidade" value="#{bundle.CreateCidadeSaveLink}" oncomplete="#{cidadeController.prepareCreate}" ajax="false" />
                        <p:commandButton value="Limpar" type="reset" update=":formCidadeCreate:pgCidadeCreate" ajax="false"/>
                    </p:panelGrid>
                </p:dialog>

            </h:form>

            <h:form id="formCidadeEdit">

                <p:dialog header="Editar Cidade" widgetVar="dialogCidadeEdit" resizable="false" modal="true" showEffect="slide">
                    <p:panelGrid id="pgCidadeEdit" columns="2">
                        <h:outputLabel value="#{bundle.CreateCidadeLabel_nome}" for="nome" />
                        <p:inputText id="nome" value="#{cidadeController.selected.nome}" title="#{bundle.CreateCidadeTitle_nome}" required="true" requiredMessage="#{bundle.CreateCidadeRequiredMessage_nome}"/>
                        <h:outputLabel value="#{bundle.CreateCidadeLabel_uf}" for="uf" />
                        <p:selectOneMenu id="uf" value="#{cidadeController.selected.uf}" label="#{bundle.CreateCidadeTitle_uf}" required="true" requiredMessage="#{bundle.CreateCidadeRequiredMessage_uf}">
                            <f:selectItems value="#{ufController.itemsAvailableSelectOne}"/>
                        </p:selectOneMenu>
                        <p:commandButton actionListener="#{cidadeController.update}" update=":formCidadeList:tableCidade" value="#{bundle.EditCidadeSaveLink}" oncomplete="dialogCidadeEdit.hide()" ajax="false" />
                        <p:commandButton value="Cancelar" oncomplete="dialogCidadeEdit.hide()" ajax="false"/>
                    </p:panelGrid>
                </p:dialog>

            </h:form>
        </ui:define>
    </ui:composition>

</html>
